package main

import (
	"fmt"
	"github.com/astaxie/beego/logs"
	"math/rand"
	_ "smart_home/admin/routers"
	"time"

	"github.com/astaxie/beego"
)

func init() {
	// 日志
	/*
		filename 保存的文件名
		maxlines 每个文件保存的最大行数，默认值 1000000
		maxsize 每个文件保存的最大尺寸，默认值是 1 << 28, //256 MB
		daily 是否按照每天 logrotate，默认是 true
		maxdays 文件最多保存多少天，默认保存 7 天
		rotate 是否开启 logrotate，默认是 true
		level 日志保存的时候的级别，默认是 Trace 级别

		LevelEmergency     = 0
		LevelAlert = 1
		LevelCritical = 2
		LevelError = 3
		LevelWarning = 4
		LevelNotice = 5
		LevelInformational = 6
		LevelDebug = 7

		perm 日志文件权限
		separate 需要单独写入文件的日志级别,设置后命名类似 test.error.log
	*/
	logsFileName := beego.AppConfig.DefaultString("logs_file_name", "logs/logs.log")
	logsLevel := beego.AppConfig.DefaultInt("logs_level", 1)
	confStr := fmt.Sprintf(`{"filename":"%s", "level":%d , "color":true, "separate":["error"]}`, logsFileName, logsLevel)
	logs.SetLogger(logs.AdapterMultiFile, confStr)
	logs.EnableFuncCallDepth(true)
	logs.SetLogFuncCallDepth(3)
	logs.Async()

	//以时间作为初始化种子
	rand.Seed(time.Now().UnixNano())
}

func main() {
	if beego.BConfig.RunMode == "dev" {
		beego.BConfig.WebConfig.DirectoryIndex = true
		beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
	}
	beego.Run()
}
